package com.ruoyi.wms.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 货品信息对象 wms_item
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
public class WmsItem extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 租户ID */
    @Excel(name = "租户ID")
    private Long tenantId;

    /** 货主ID */
    @Excel(name = "货主ID")
    private Long ownerId;

    /** 货品编码 */
    @Excel(name = "货品编码")
    private String itemCode;

    /** 货品名称 */
    @Excel(name = "货品名称")
    private String itemName;

    /** 货品英文名称 */
    @Excel(name = "货品英文名称")
    private String itemNameEn;

    /** 分类ID */
    @Excel(name = "分类ID")
    private Long categoryId;

    /** 物料类型 */
    @Excel(name = "物料类型", dictType = "wms_item_type")
    private String itemType;

    /** 品牌 */
    @Excel(name = "品牌")
    private String brand;

    /** 型号 */
    @Excel(name = "型号")
    private String model;

    /** 规格 */
    @Excel(name = "规格")
    private String specification;

    /** 基本单位 */
    @Excel(name = "基本单位")
    private String unit;

    /** 重量（kg） */
    @Excel(name = "重量")
    private BigDecimal weight;

    /** 体积（立方米） */
    @Excel(name = "体积")
    private BigDecimal volume;

    /** 长度（cm） */
    @Excel(name = "长度")
    private BigDecimal length;

    /** 宽度（cm） */
    @Excel(name = "宽度")
    private BigDecimal width;

    /** 高度（cm） */
    @Excel(name = "高度")
    private BigDecimal height;

    /** 颜色 */
    @Excel(name = "颜色")
    private String color;

    /** 材质 */
    @Excel(name = "材质")
    private String material;

    /** 保质期（天） */
    @Excel(name = "保质期")
    private Integer shelfLife;

    /** 存储条件 */
    @Excel(name = "存储条件")
    private String storageCondition;

    /** 是否批次管理：0-否，1-是 */
    @Excel(name = "批次管理", readConverterExp = "0=否,1=是")
    private Integer isBatchManage;

    /** 是否序列号管理：0-否，1-是 */
    @Excel(name = "序列号管理", readConverterExp = "0=否,1=是")
    private Integer isSerialManage;

    /** 安全库存 */
    @Excel(name = "安全库存")
    private BigDecimal safetyStock;

    /** 最大库存 */
    @Excel(name = "最大库存")
    private BigDecimal maxStock;

    /** 最小库存 */
    @Excel(name = "最小库存")
    private BigDecimal minStock;

    /** ABC分类：A-重要，B-一般，C-普通 */
    @Excel(name = "ABC分类", readConverterExp = "A=重要,B=一般,C=普通")
    private String abcCategory;

    /** 状态：0-停用，1-启用 */
    @Excel(name = "状态", readConverterExp = "0=停用,1=启用")
    private Integer status;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setTenantId(Long tenantId) 
    {
        this.tenantId = tenantId;
    }

    public Long getTenantId() 
    {
        return tenantId;
    }
    public void setOwnerId(Long ownerId) 
    {
        this.ownerId = ownerId;
    }

    public Long getOwnerId() 
    {
        return ownerId;
    }
    public void setItemCode(String itemCode) 
    {
        this.itemCode = itemCode;
    }

    public String getItemCode() 
    {
        return itemCode;
    }
    public void setItemName(String itemName) 
    {
        this.itemName = itemName;
    }

    public String getItemName() 
    {
        return itemName;
    }
    public void setItemNameEn(String itemNameEn) 
    {
        this.itemNameEn = itemNameEn;
    }

    public String getItemNameEn() 
    {
        return itemNameEn;
    }
    public void setCategoryId(Long categoryId) 
    {
        this.categoryId = categoryId;
    }

    public Long getCategoryId() 
    {
        return categoryId;
    }
    public void setItemType(String itemType) 
    {
        this.itemType = itemType;
    }

    public String getItemType() 
    {
        return itemType;
    }
    public void setBrand(String brand) 
    {
        this.brand = brand;
    }

    public String getBrand() 
    {
        return brand;
    }
    public void setModel(String model) 
    {
        this.model = model;
    }

    public String getModel() 
    {
        return model;
    }
    public void setSpecification(String specification) 
    {
        this.specification = specification;
    }

    public String getSpecification() 
    {
        return specification;
    }
    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }
    public void setWeight(BigDecimal weight) 
    {
        this.weight = weight;
    }

    public BigDecimal getWeight() 
    {
        return weight;
    }
    public void setVolume(BigDecimal volume) 
    {
        this.volume = volume;
    }

    public BigDecimal getVolume() 
    {
        return volume;
    }
    public void setLength(BigDecimal length) 
    {
        this.length = length;
    }

    public BigDecimal getLength() 
    {
        return length;
    }
    public void setWidth(BigDecimal width) 
    {
        this.width = width;
    }

    public BigDecimal getWidth() 
    {
        return width;
    }
    public void setHeight(BigDecimal height) 
    {
        this.height = height;
    }

    public BigDecimal getHeight() 
    {
        return height;
    }
    public void setColor(String color) 
    {
        this.color = color;
    }

    public String getColor() 
    {
        return color;
    }
    public void setMaterial(String material) 
    {
        this.material = material;
    }

    public String getMaterial() 
    {
        return material;
    }
    public void setShelfLife(Integer shelfLife) 
    {
        this.shelfLife = shelfLife;
    }

    public Integer getShelfLife() 
    {
        return shelfLife;
    }
    public void setStorageCondition(String storageCondition) 
    {
        this.storageCondition = storageCondition;
    }

    public String getStorageCondition() 
    {
        return storageCondition;
    }
    public void setIsBatchManage(Integer isBatchManage) 
    {
        this.isBatchManage = isBatchManage;
    }

    public Integer getIsBatchManage() 
    {
        return isBatchManage;
    }
    public void setIsSerialManage(Integer isSerialManage) 
    {
        this.isSerialManage = isSerialManage;
    }

    public Integer getIsSerialManage() 
    {
        return isSerialManage;
    }
    public void setSafetyStock(BigDecimal safetyStock) 
    {
        this.safetyStock = safetyStock;
    }

    public BigDecimal getSafetyStock() 
    {
        return safetyStock;
    }
    public void setMaxStock(BigDecimal maxStock) 
    {
        this.maxStock = maxStock;
    }

    public BigDecimal getMaxStock() 
    {
        return maxStock;
    }
    public void setMinStock(BigDecimal minStock) 
    {
        this.minStock = minStock;
    }

    public BigDecimal getMinStock() 
    {
        return minStock;
    }
    public void setAbcCategory(String abcCategory) 
    {
        this.abcCategory = abcCategory;
    }

    public String getAbcCategory() 
    {
        return abcCategory;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("tenantId", getTenantId())
            .append("ownerId", getOwnerId())
            .append("itemCode", getItemCode())
            .append("itemName", getItemName())
            .append("itemNameEn", getItemNameEn())
            .append("categoryId", getCategoryId())
            .append("itemType", getItemType())
            .append("brand", getBrand())
            .append("model", getModel())
            .append("specification", getSpecification())
            .append("unit", getUnit())
            .append("weight", getWeight())
            .append("volume", getVolume())
            .append("length", getLength())
            .append("width", getWidth())
            .append("height", getHeight())
            .append("color", getColor())
            .append("material", getMaterial())
            .append("shelfLife", getShelfLife())
            .append("storageCondition", getStorageCondition())
            .append("isBatchManage", getIsBatchManage())
            .append("isSerialManage", getIsSerialManage())
            .append("safetyStock", getSafetyStock())
            .append("maxStock", getMaxStock())
            .append("minStock", getMinStock())
            .append("abcCategory", getAbcCategory())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}